[INFO] fetching crate gluon_check 0.18.2...
[INFO] fixing gluon_check-0.18.2 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate gluon_check 0.18.2 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate gluon_check 0.18.2
[INFO] finished tweaking crates.io crate gluon_check 0.18.2
[INFO] tweaked toml for crates.io crate gluon_check 0.18.2 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate gluon_check 0.18.2 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 106 packages to latest compatible versions
[INFO] [stderr]       Adding codespan v0.11.1 (available: v0.13.1)
[INFO] [stderr]       Adding codespan-reporting v0.11.1 (available: v0.13.1)
[INFO] [stderr]       Adding env_logger v0.9.3 (available: v0.11.10)
[INFO] [stderr]       Adding itertools v0.10.5 (available: v0.15.0)
[INFO] [stderr]       Adding pretty v0.10.0 (available: v0.12.5)
[INFO] [stderr]       Adding rpds v0.10.0 (available: v1.2.1)
[INFO] [stderr]       Adding strsim v0.10.0 (available: v0.11.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ac81a1d7109b9310689be399bd856db68dcd21530360d43ca3b19649fec1cdd9
[INFO] running `Command { std: "docker" "start" "ac81a1d7109b9310689be399bd856db68dcd21530360d43ca3b19649fec1cdd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ac81a1d7109b9310689be399bd856db68dcd21530360d43ca3b19649fec1cdd9" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ac81a1d7109b9310689be399bd856db68dcd21530360d43ca3b19649fec1cdd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ac81a1d7109b9310689be399bd856db68dcd21530360d43ca3b19649fec1cdd9" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   getrandom v0.2.17 removed features: std
[INFO] [stderr]   libc v0.2.186 removed features: default, std
[INFO] [stderr]   log v0.4.33 removed features: std
[INFO] [stderr]   once_cell v1.21.4 removed features: default, std
[INFO] [stderr] 
[INFO] [stderr] The following differences only apply when building with dev-dependencies:
[INFO] [stderr] 
[INFO] [stderr]   either v1.16.0 (as host dependency) removed features: default
[INFO] [stderr]   itertools v0.10.5 (as host dependency) removed features: default
[INFO] [stderr]   lalrpop-util v0.19.12 removed features: lexer, regex
[INFO] [stderr]   log v0.4.33 (as host dependency) removed features: std
[INFO] [stderr]   regex v1.12.4 removed features: default, unicode, unicode-age, unicode-bool, unicode-case, unicode-gencat, unicode-perl, unicode-script, unicode-segment
[INFO] [stderr]   regex-automata v0.4.14 removed features: unicode, unicode-age, unicode-bool, unicode-case, unicode-gencat, unicode-perl, unicode-script, unicode-segment, unicode-word-boundary
[INFO] [stderr]   regex-syntax v0.8.11 removed features: default, unicode, unicode-age, unicode-bool, unicode-case, unicode-gencat, unicode-perl, unicode-script, unicode-segment
[INFO] [stderr] 
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]     Checking codespan v0.11.1
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]     Checking collect-mac v0.1.0
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling ena v0.14.4
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling ascii-canvas v3.0.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking pretty v0.10.0
[INFO] [stderr]     Checking archery v0.4.0
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking rpds v0.10.0
[INFO] [stderr]     Checking lalrpop-util v0.19.12
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking humantime v2.3.0
[INFO] [stderr]     Checking difference v2.0.0
[INFO] [stderr]     Checking insta v1.48.0
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling gluon_codegen v0.18.2
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]     Checking gluon_base v0.18.2
[INFO] [stderr]    Compiling lalrpop v0.19.12
[INFO] [stderr]     Checking gluon_format v0.18.2
[INFO] [stderr]     Checking gluon_check v0.18.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Compiling gluon_parser v0.18.2
[INFO] [stderr]    Migrating tests/metadata.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/implicits.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/error_recovery.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/recursive.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/pass.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/effect.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/gadt.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/fail.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/type_projection.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/forall.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/row_polymorphism.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/stack_overflow.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.24s
[INFO] [stderr] crater-edition-check: gluon_check v0.18.2 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking ahash v0.7.8
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling ena v0.14.4
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking lalrpop-util v0.19.12
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]     Checking gluon_base v0.18.2
[INFO] [stderr]    Compiling lalrpop v0.19.12
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]     Checking gluon_format v0.18.2
[INFO] [stderr]     Checking gluon_check v0.18.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_derive`
[INFO] [stdout]  --> src/metadata.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(feature = "serde_derive")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `serde_derive` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TypeExt` and `TypePtr`
[INFO] [stdout]  --> src/typ.rs:1:56
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::base::types::{ArcType as RcType, Flags, TypeExt, TypePtr};
[INFO] [stdout]   |                                                        ^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_data` is never used
[INFO] [stdout]   --> src/metadata.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | trait ArcMetadata: Into<Arc<Metadata>> {
[INFO] [stdout]    |       ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn has_data(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gluon_parser v0.18.2
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_derive`
[INFO] [stdout]  --> src/metadata.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(feature = "serde_derive")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `serde_derive` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypeExt`
[INFO] [stdout]  --> src/typ.rs:1:56
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::base::types::{ArcType as RcType, Flags, TypeExt, TypePtr};
[INFO] [stdout]   |                                                        ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_data` is never used
[INFO] [stdout]   --> src/metadata.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | trait ArcMetadata: Into<Arc<Metadata>> {
[INFO] [stdout]    |       ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn has_data(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   getrandom v0.2.17 removed features: std
[INFO] [stderr]   libc v0.2.186 removed features: default, std
[INFO] [stderr]   log v0.4.33 removed features: std
[INFO] [stderr]   once_cell v1.21.4 removed features: default, std
[INFO] [stderr] 
[INFO] [stderr] The following differences only apply when building with dev-dependencies:
[INFO] [stderr] 
[INFO] [stderr]   either v1.16.0 (as host dependency) removed features: default
[INFO] [stderr]   itertools v0.10.5 (as host dependency) removed features: default
[INFO] [stderr]   lalrpop-util v0.19.12 removed features: lexer, regex
[INFO] [stderr]   log v0.4.33 (as host dependency) removed features: std
[INFO] [stderr]   regex v1.12.4 removed features: default, unicode, unicode-age, unicode-bool, unicode-case, unicode-gencat, unicode-perl, unicode-script, unicode-segment
[INFO] [stderr]   regex-automata v0.4.14 removed features: unicode, unicode-age, unicode-bool, unicode-case, unicode-gencat, unicode-perl, unicode-script, unicode-segment, unicode-word-boundary
[INFO] [stderr]   regex-syntax v0.8.11 removed features: default, unicode, unicode-age, unicode-bool, unicode-case, unicode-gencat, unicode-perl, unicode-script, unicode-segment
[INFO] [stderr] 
[INFO] [stderr]     Checking gluon_check v0.18.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `gluon_check`
[INFO] [stderr]  --> src/implicits.rs
[INFO] [stderr]  ::: src/rename.rs
[INFO] [stderr]  ::: src/typecheck.rs
[INFO] [stderr]  ::: src/unify_type.rs
[INFO] [stderr]   = cause: error[E0409]: variable `new_expr` is bound inconsistently across alternatives separated by `|`
[INFO] [stderr]               --> src/rename.rs:334:39
[INFO] [stderr]                |
[INFO] [stderr]            331 | ...                   Expr::LetBindings(_, ref mut new_expr)
[INFO] [stderr]                |                                                    -------- first binding
[INFO] [stderr]            ...
[INFO] [stderr]            334 | ...                       body: new_expr,
[INFO] [stderr]                |                                 ^^^^^^^^ bound in different ways
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/typecheck.rs:384:9
[INFO] [stderr]                 |
[INFO] [stderr]             383 |         let typ = self.subs.hole();
[INFO] [stderr]                 |             ---
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `typ` calls a custom destructor
[INFO] [stderr]                 |             `typ` will be dropped later as of Edition 2024
[INFO] [stderr]             384 |         TypeGeneralizer::new(level, self, &typ, expr.span).generalize_variables(args, expr)
[INFO] [stderr]                 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |         |
[INFO] [stderr]                 |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             385 |     }
[INFO] [stderr]                 |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> src/typecheck/generalize.rs:23:1
[INFO] [stderr]                 |
[INFO] [stderr]              23 | impl<'a, 'b> Drop for TypeGeneralizer<'a, 'b, '_> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                 = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/typecheck.rs:1075:49
[INFO] [stderr]                 |
[INFO] [stderr]            1074 |                         let rc_type = self.translate_arc_type(typ);
[INFO] [stderr]                 |                             -------
[INFO] [stderr]                 |                             |
[INFO] [stderr]                 |                             `rc_type` calls a custom destructor
[INFO] [stderr]                 |                             `rc_type` will be dropped later as of Edition 2024
[INFO] [stderr]            1075 |                         if let Some(new_type) = self.create_unifiable_signature(&rc_type) {
[INFO] [stderr]                 |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                                                 |
[INFO] [stderr]                 |                                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1078 |                     }
[INFO] [stderr]                 |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `rc_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `rc_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/typecheck.rs:1608:23
[INFO] [stderr]                 |
[INFO] [stderr]            1579 |                 let ctor_type = self.find_at(span, &id.name);
[INFO] [stderr]                 |                     ---------
[INFO] [stderr]                 |                     |
[INFO] [stderr]                 |                     `ctor_type` calls a custom destructor
[INFO] [stderr]                 |                     `ctor_type` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1585 |                 let ctor_type = if wobbly {
[INFO] [stderr]                 |                     ---------
[INFO] [stderr]                 |                     |
[INFO] [stderr]                 |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                     `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1608 |                 match self.typecheck_pattern_rec(args, &ctor_type) {
[INFO] [stderr]                 |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                       |
[INFO] [stderr]                 |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1612 |             }
[INFO] [stderr]                 |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stderr]                 |
[INFO] [stderr]             417 | / impl<T, P> Drop for List<T, P>
[INFO] [stderr]             418 | | where
[INFO] [stderr]             419 | |     P: SharedPointerKind,
[INFO] [stderr]                 | |_________________________^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `ctor_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `ctor_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/typecheck.rs:3272:31
[INFO] [stderr]                 |
[INFO] [stderr]            3263 |                 let (arg, new) = match self.typ.as_function_with_type() {
[INFO] [stderr]                 |  ____________________---_________-
[INFO] [stderr]                 | |                    |
[INFO] [stderr]                 | |                    `arg` calls a custom destructor
[INFO] [stderr]                 | |                    `arg` will be dropped later as of Edition 2024
[INFO] [stderr]            3264 | |                   Some((arg_type, arg, ret)) => (Some((arg_type, arg.clone())), ret.clone()),
[INFO] [stderr]            3265 | |                   None => match get_alias_app(&self.tc.environment, &self.typ) {
[INFO] [stderr]                 | |                                 ----------------------------------------------
[INFO] [stderr]                 | |                                 |
[INFO] [stderr]                 | |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 | |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stderr]            3266 | |                       Some((alias, args)) => {
[INFO] [stderr]                 | |                             -----  ----
[INFO] [stderr]                 | |                             |      |
[INFO] [stderr]                 | |                             |      `args` calls a custom destructor
[INFO] [stderr]                 | |                             |      `args` will be dropped later as of Edition 2024
[INFO] [stderr]                 | |                             `alias` calls a custom destructor
[INFO] [stderr]                 | |                             `alias` will be dropped later as of Edition 2024
[INFO] [stderr]            ...    |
[INFO] [stderr]            3272 | |                           match alias.typ(&mut &self.tc.subs).apply_args(
[INFO] [stderr]                 | |                                 ^----------------------------
[INFO] [stderr]                 | |                                 |
[INFO] [stderr]                 | |                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stderr]                 | |  _______________________________up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                 | | |
[INFO] [stderr]            3273 | | |                             alias.params(),
[INFO] [stderr]            3274 | | |                             &args,
[INFO] [stderr]            3275 | | |                             &mut &self.tc.subs,
[INFO] [stderr]            3276 | | |                             &mut self.tc.named_variables,
[INFO] [stderr]            3277 | | |                         ) {
[INFO] [stderr]                 | | |                         ^
[INFO] [stderr]                 | | |                         |
[INFO] [stderr]                 | | |_________________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                 | |                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            3278 | |                               Some(typ) => (None, typ.clone()),
[INFO] [stderr]                 | |                                    ---
[INFO] [stderr]                 | |                                    |
[INFO] [stderr]                 | |                                    `typ` calls a custom destructor
[INFO] [stderr]                 | |                                    `typ` will be dropped later as of Edition 2024
[INFO] [stderr]            ...    |
[INFO] [stderr]            3281 | |                       }
[INFO] [stderr]                 | |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]            3282 | |                       None => return None,
[INFO] [stderr]            3283 | |                   },
[INFO] [stderr]            3284 | |               };
[INFO] [stderr]                 | |               -
[INFO] [stderr]                 | |               |
[INFO] [stderr]                 | |_______________this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                 `#1` will be dropped later as of Edition 2024
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#3` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#3` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#4` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#4` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `arg` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `arg` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `alias` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `alias` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `args` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `args` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:96:27
[INFO] [stderr]                 |
[INFO] [stderr]              87 |             Some(mut typ) => {
[INFO] [stderr]                 |                  -------
[INFO] [stderr]                 |                  |
[INFO] [stderr]                 |                  `typ` calls a custom destructor
[INFO] [stderr]                 |                  `typ` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]              96 |                     match resolve::remove_alias(&self.env, &mut subs, &typ)? {
[INFO] [stderr]                 |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                           |
[INFO] [stderr]                 |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                 |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]             100 |                 }
[INFO] [stderr]                 |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:413:33
[INFO] [stderr]                 |
[INFO] [stderr]             412 |             let l_args = collect![l_arg.clone(), l_ret.clone()];
[INFO] [stderr]                 |                 ------
[INFO] [stderr]                 |                 |
[INFO] [stderr]                 |                 `l_args` calls a custom destructor
[INFO] [stderr]                 |                 `l_args` will be dropped later as of Edition 2024
[INFO] [stderr]             413 |             unify_app(unifier, &subs.function_builtin(), &l_args, r, r_args)
[INFO] [stderr]                 |                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                                 |
[INFO] [stderr]                 |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             414 |                 .map_err(|_| UnifyError::TypeMismatch(expected.clone(), actual.clone()))
[INFO] [stderr]             415 |         }
[INFO] [stderr]                 |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `l_args` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:422:44
[INFO] [stderr]                 |
[INFO] [stderr]             421 |             let r_args = collect![r_arg.clone(), r_ret.clone()];
[INFO] [stderr]                 |                 ------
[INFO] [stderr]                 |                 |
[INFO] [stderr]                 |                 `r_args` calls a custom destructor
[INFO] [stderr]                 |                 `r_args` will be dropped later as of Edition 2024
[INFO] [stderr]             422 |             unify_app(unifier, l, l_args, &subs.function_builtin(), &r_args)
[INFO] [stderr]                 |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                                            |
[INFO] [stderr]                 |                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                                            up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             423 |                 .map_err(|_| UnifyError::TypeMismatch(expected.clone(), actual.clone()))
[INFO] [stderr]             424 |         }
[INFO] [stderr]                 |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `r_args` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:1001:23
[INFO] [stderr]                 |
[INFO] [stderr]             976 |     mut l: RcType,
[INFO] [stderr]                 |     -----
[INFO] [stderr]                 |     |
[INFO] [stderr]                 |     `l` calls a custom destructor
[INFO] [stderr]                 |     `l` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1001 |                 match resolve::remove_alias(unifier.state.env, &mut subs, &l) {
[INFO] [stderr]                 |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                       |
[INFO] [stderr]                 |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1016 |             }
[INFO] [stderr]                 |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `l` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `l` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:1685:15
[INFO] [stderr]                 |
[INFO] [stderr]            1676 |         let mut interner = SharedInterner::default();
[INFO] [stderr]                 |             ------------
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `interner` calls a custom destructor
[INFO] [stderr]                 |             `interner` will be dropped later as of Edition 2024
[INFO] [stderr]            1677 |         let subs = Substitution::new(Kind::typ(), interner.clone());
[INFO] [stderr]                 |             ----
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `subs` calls a custom destructor
[INFO] [stderr]                 |             `subs` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1680 |         let x = Field::new(intern("x"), interner.int());
[INFO] [stderr]                 |             -
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `x` calls a custom destructor
[INFO] [stderr]                 |             `x` will be dropped later as of Edition 2024
[INFO] [stderr]            1681 |         let y = Field::new(intern("y"), interner.int());
[INFO] [stderr]                 |             -
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `y` calls a custom destructor
[INFO] [stderr]                 |             `y` will be dropped later as of Edition 2024
[INFO] [stderr]            1682 |         let l: RcType = interner.poly_record(vec![], vec![x.clone()], subs.new_var());
[INFO] [stderr]                 |             -
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `l` calls a custom destructor
[INFO] [stderr]                 |             `l` will be dropped later as of Edition 2024
[INFO] [stderr]            1683 |         let r = interner.poly_record(vec![], vec![y.clone()], subs.new_var());
[INFO] [stderr]                 |             -
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `r` calls a custom destructor
[INFO] [stderr]                 |             `r` will be dropped later as of Edition 2024
[INFO] [stderr]            1684 |
[INFO] [stderr]            1685 |         match unify(&subs, state, &l, &r) {
[INFO] [stderr]                 |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1697 |     }
[INFO] [stderr]                 |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `interner` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `interner` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `subs` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `subs` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `x` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `x` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `y` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `y` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/kindcheck.rs:239:35
[INFO] [stdout]     |
[INFO] [stdout] 239 |             Type::Generic(ref mut gen) => {
[INFO] [stdout]     |                                   ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout]     = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            note: `l` invokes this custom destructor
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/kindcheck.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 gen.kind = self.find_at(span, &gen.id);
[INFO] [stdout]     |                 ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/kindcheck.rs:240:48
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 gen.kind = self.find_at(span, &gen.id);
[INFO] [stdout]     |                                                ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/kindcheck.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 gen.kind.clone()
[INFO] [stdout]     |                 ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typ.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let gen = Type::<_, RcType>::generic(Generic::new(Symbol::from("a"), Default::default()));
[INFO] [stdout]    |             ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typ.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         assert_eq!(gen.flags(), Flags::HAS_GENERICS);
[INFO] [stdout]    |                    ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            note: `l` invokes this custom destructor
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typ.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 |             Type::function(vec![gen.clone()], gen.clone()).flags(),
[INFO] [stdout]    |                                 ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typ.rs:17:47
[INFO] [stdout]    |
[INFO] [stdout] 17 |             Type::function(vec![gen.clone()], gen.clone()).flags(),
[INFO] [stdout]    |                                               ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:1803:35
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                   ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:1803:43
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                           ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:2251:52
[INFO] [stdout]      |
[INFO] [stdout] 2251 |                         .extend(params.iter().map(|gen| (gen.id.clone(), type_cache.hole())));
[INFO] [stdout]      |                                                    ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            note: `r` invokes this custom destructor
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:2251:58
[INFO] [stdout]      |
[INFO] [stdout] 2251 |                         .extend(params.iter().map(|gen| (gen.id.clone(), type_cache.hole())));
[INFO] [stdout]      |                                                          ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:3230:31
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref gen) => gen.clone(),
[INFO] [stdout]      |                               ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:3230:39
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref gen) => gen.clone(),
[INFO] [stdout]      |                                       ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typecheck/generalize.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |         for (id, gen) in self.delayed_generalizations.drain(..) {
[INFO] [stdout]    |                  ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typecheck/generalize.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |             self.tc.subs.replace(id, gen);
[INFO] [stdout]    |                                      ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            note: `r` invokes this custom destructor
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:160:21
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 let gen = self.unbound_variables.entry(var.id).or_insert_with(|| {
[INFO] [stdout]     |                     ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:172:25
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     let gen: RcType = tc.generic(Generic::new(id.clone(), var.kind.clone()));
[INFO] [stdout]     |                         ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:173:52
[INFO] [stdout]     |
[INFO] [stdout] 173 |                     debug!("Gen {} to {}", var.id, gen);
[INFO] [stdout]     |                                                    ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                     gen
[INFO] [stdout]     |                     ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:178:22
[INFO] [stdout]     |
[INFO] [stdout] 178 |                 Some(gen.clone())
[INFO] [stdout]     |                      ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/rename.rs:281:21
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     ref mut id,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 282 |                     ref mut bound,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 283 |                     ref mut flat_map_id,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/rename.rs:280:26
[INFO] [stdout]     |
[INFO] [stdout] 280 |                   Expr::Do(Do {
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 281 | |                     ref mut id,
[INFO] [stdout] 282 | |                     ref mut bound,
[INFO] [stdout] 283 | |                     ref mut flat_map_id,
[INFO] [stdout] 284 | |                     ..
[INFO] [stdout] 285 | |                 }) => {
[INFO] [stdout]     | |_________________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]     = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: remove the unnecessary binding modifiers
[INFO] [stdout]     |
[INFO] [stdout] 281 ~                     id,
[INFO] [stdout] 282 ~                     bound,
[INFO] [stdout] 283 ~                     flat_map_id,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/rename.rs:334:39
[INFO] [stdout]     |
[INFO] [stdout] 334 | ...                   body: ref mut new_expr,
[INFO] [stdout]     |                             ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/rename.rs:333:40
[INFO] [stdout]     |
[INFO] [stdout] 333 |   ...                   | Expr::Do(Do {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 334 | | ...                       body: ref mut new_expr,
[INFO] [stdout] 335 | | ...                       ..
[INFO] [stdout] 336 | | ...                   }) => new_expr,
[INFO] [stdout]     | |_______________________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 334 -                                 body: ref mut new_expr,
[INFO] [stdout] 334 +                                 body: new_expr,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:384:9
[INFO] [stdout]      |
[INFO] [stdout]  383 |         let typ = self.subs.hole();
[INFO] [stdout]      |             ---
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `typ` calls a custom destructor
[INFO] [stdout]      |             `typ` will be dropped later as of Edition 2024
[INFO] [stdout]  384 |         TypeGeneralizer::new(level, self, &typ, expr.span).generalize_variables(args, expr)
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  385 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/typecheck/generalize.rs:23:1
[INFO] [stdout]      |
[INFO] [stdout]   23 | impl<'a, 'b> Drop for TypeGeneralizer<'a, 'b, '_> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:1174:17
[INFO] [stdout]      |
[INFO] [stdout] 1174 |                 ref mut id,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1175 |                 ref mut typ,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1176 |                 ref mut bound,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1177 |                 ref mut body,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1178 |                 ref mut flat_map_id,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]     --> src/typecheck.rs:1173:22
[INFO] [stdout]      |
[INFO] [stdout] 1173 |               Expr::Do(Do {
[INFO] [stdout]      |  ______________________^
[INFO] [stdout] 1174 | |                 ref mut id,
[INFO] [stdout] 1175 | |                 ref mut typ,
[INFO] [stdout] 1176 | |                 ref mut bound,
[INFO] [stdout] 1177 | |                 ref mut body,
[INFO] [stdout] 1178 | |                 ref mut flat_map_id,
[INFO] [stdout] 1179 | |             }) => {
[INFO] [stdout]      | |_____________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout] help: remove the unnecessary binding modifiers
[INFO] [stdout]      |
[INFO] [stdout] 1174 ~                 id,
[INFO] [stdout] 1175 ~                 typ,
[INFO] [stdout] 1176 ~                 bound,
[INFO] [stdout] 1177 ~                 body,
[INFO] [stdout] 1178 ~                 flat_map_id,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:1075:49
[INFO] [stdout]      |
[INFO] [stdout] 1074 |                         let rc_type = self.translate_arc_type(typ);
[INFO] [stdout]      |                             -------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             `rc_type` calls a custom destructor
[INFO] [stdout]      |                             `rc_type` will be dropped later as of Edition 2024
[INFO] [stdout] 1075 |                         if let Some(new_type) = self.create_unifiable_signature(&rc_type) {
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                 |
[INFO] [stdout]      |                                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1078 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rc_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rc_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:1608:23
[INFO] [stdout]      |
[INFO] [stdout] 1579 |                 let ctor_type = self.find_at(span, &id.name);
[INFO] [stdout]      |                     ---------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `ctor_type` calls a custom destructor
[INFO] [stdout]      |                     `ctor_type` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1585 |                 let ctor_type = if wobbly {
[INFO] [stdout]      |                     ---------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1608 |                 match self.typecheck_pattern_rec(args, &ctor_type) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1612 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stdout]      |
[INFO] [stdout]  417 | / impl<T, P> Drop for List<T, P>
[INFO] [stdout]  418 | | where
[INFO] [stdout]  419 | |     P: SharedPointerKind,
[INFO] [stdout]      | |_________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ctor_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ctor_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                --> src/implicits.rs:346:15
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:3272:31
[INFO] [stdout]      |
[INFO] [stdout] 3263 |                 let (arg, new) = match self.typ.as_function_with_type() {
[INFO] [stdout]      |  ____________________---_________-
[INFO] [stdout]      | |                    |
[INFO] [stdout]      | |                    `arg` calls a custom destructor
[INFO] [stdout]      | |                    `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3264 | |                   Some((arg_type, arg, ret)) => (Some((arg_type, arg.clone())), ret.clone()),
[INFO] [stdout] 3265 | |                   None => match get_alias_app(&self.tc.environment, &self.typ) {
[INFO] [stdout]      | |                                 ----------------------------------------------
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 3266 | |                       Some((alias, args)) => {
[INFO] [stdout]      | |                             -----  ----
[INFO] [stdout]      | |                             |      |
[INFO] [stdout]      | |                             |      `args` calls a custom destructor
[INFO] [stdout]      | |                             |      `args` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                             `alias` calls a custom destructor
[INFO] [stdout]      | |                             `alias` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout] 3272 | |                           match alias.typ(&mut &self.tc.subs).apply_args(
[INFO] [stdout]      | |                                 ^----------------------------
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |  _______________________________up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      | | |
[INFO] [stdout] 3273 | | |                             alias.params(),
[INFO] [stdout] 3274 | | |                             &args,
[INFO] [stdout] 3275 | | |                             &mut &self.tc.subs,
[INFO] [stdout] 3276 | | |                             &mut self.tc.named_variables,
[INFO] [stdout] 3277 | | |                         ) {
[INFO] [stdout]      | | |                         ^
[INFO] [stdout]      | | |                         |
[INFO] [stdout]      | | |_________________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 3278 | |                               Some(typ) => (None, typ.clone()),
[INFO] [stdout]      | |                                    ---
[INFO] [stdout]      | |                                    |
[INFO] [stdout]      | |                                    `typ` calls a custom destructor
[INFO] [stdout]      | |                                    `typ` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout] 3281 | |                       }
[INFO] [stdout]      | |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 3282 | |                       None => return None,
[INFO] [stdout] 3283 | |                   },
[INFO] [stdout] 3284 | |               };
[INFO] [stdout]      | |               -
[INFO] [stdout]      | |               |
[INFO] [stdout]      | |_______________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `alias` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `alias` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `args` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `args` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:96:27
[INFO] [stdout]      |
[INFO] [stdout]   87 |             Some(mut typ) => {
[INFO] [stdout]      |                  -------
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  `typ` calls a custom destructor
[INFO] [stdout]      |                  `typ` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   96 |                     match resolve::remove_alias(&self.env, &mut subs, &typ)? {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  100 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]             345 |             let mut to_resolve = Vec::new();
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:413:33
[INFO] [stdout]      |
[INFO] [stdout]  412 |             let l_args = collect![l_arg.clone(), l_ret.clone()];
[INFO] [stdout]      |                 ------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `l_args` calls a custom destructor
[INFO] [stdout]      |                 `l_args` will be dropped later as of Edition 2024
[INFO] [stdout]  413 |             unify_app(unifier, &subs.function_builtin(), &l_args, r, r_args)
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  414 |                 .map_err(|_| UnifyError::TypeMismatch(expected.clone(), actual.clone()))
[INFO] [stdout]  415 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `l_args` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |                 --------------
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:422:44
[INFO] [stdout]      |
[INFO] [stdout]  421 |             let r_args = collect![r_arg.clone(), r_ret.clone()];
[INFO] [stdout]      |                 ------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `r_args` calls a custom destructor
[INFO] [stdout]      |                 `r_args` will be dropped later as of Edition 2024
[INFO] [stdout]  422 |             unify_app(unifier, l, l_args, &subs.function_builtin(), &r_args)
[INFO] [stdout]      |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                            |
[INFO] [stdout]      |                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                            up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  423 |                 .map_err(|_| UnifyError::TypeMismatch(expected.clone(), actual.clone()))
[INFO] [stdout]  424 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r_args` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |                 |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:1001:23
[INFO] [stdout]      |
[INFO] [stdout]  976 |     mut l: RcType,
[INFO] [stdout]      |     -----
[INFO] [stdout]      |     |
[INFO] [stdout]      |     `l` calls a custom destructor
[INFO] [stdout]      |     `l` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1001 |                 match resolve::remove_alias(unifier.state.env, &mut subs, &l) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1016 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `l` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `l` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |                 `to_resolve` calls a custom destructor
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:1685:15
[INFO] [stdout]      |
[INFO] [stdout] 1676 |         let mut interner = SharedInterner::default();
[INFO] [stdout]      |             ------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `interner` calls a custom destructor
[INFO] [stdout]      |             `interner` will be dropped later as of Edition 2024
[INFO] [stdout] 1677 |         let subs = Substitution::new(Kind::typ(), interner.clone());
[INFO] [stdout]      |             ----
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `subs` calls a custom destructor
[INFO] [stdout]      |             `subs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1680 |         let x = Field::new(intern("x"), interner.int());
[INFO] [stdout]      |             -
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `x` calls a custom destructor
[INFO] [stdout]      |             `x` will be dropped later as of Edition 2024
[INFO] [stdout] 1681 |         let y = Field::new(intern("y"), interner.int());
[INFO] [stdout]      |             -
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `y` calls a custom destructor
[INFO] [stdout]      |             `y` will be dropped later as of Edition 2024
[INFO] [stdout] 1682 |         let l: RcType = interner.poly_record(vec![], vec![x.clone()], subs.new_var());
[INFO] [stdout]      |             -
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `l` calls a custom destructor
[INFO] [stdout]      |             `l` will be dropped later as of Edition 2024
[INFO] [stdout] 1683 |         let r = interner.poly_record(vec![], vec![y.clone()], subs.new_var());
[INFO] [stdout]      |             -
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `r` calls a custom destructor
[INFO] [stdout]      |             `r` will be dropped later as of Edition 2024
[INFO] [stdout] 1684 |
[INFO] [stdout] 1685 |         match unify(&subs, state, &l, &r) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |               |
[INFO] [stdout]      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1697 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `interner` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `interner` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `subs` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `subs` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `x` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `x` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `y` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `y` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `l` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `l` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |                 `to_resolve` will be dropped later as of Edition 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/implicits.rs:346:15
[INFO] [stdout]      |
[INFO] [stdout]  345 |             let mut to_resolve = Vec::new();
[INFO] [stdout]      |                 --------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `to_resolve` calls a custom destructor
[INFO] [stdout]      |                 `to_resolve` will be dropped later as of Edition 2024
[INFO] [stdout]  346 |             match self.find_implicit(
[INFO] [stdout]      |  _________________^
[INFO] [stdout]  347 | |               implicit_bindings,
[INFO] [stdout]  348 | |               &mut to_resolve,
[INFO] [stdout]  349 | |               &Demand {
[INFO] [stdout]      | |  ______________-
[INFO] [stdout]  350 | | |                 reason: Default::default(),
[INFO] [stdout]  351 | | |                 constraint: id.typ.clone(),
[INFO] [stdout]  352 | | |             },
[INFO] [stdout]      | | |             -
[INFO] [stdout]      | | |             |
[INFO] [stdout]      | | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  353 | |           ) {
[INFO] [stdout]      | |           ^
[INFO] [stdout]      | |           |
[INFO] [stdout]      | |___________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  411 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stdout]      |
[INFO] [stdout]  417 | / impl<T, P> Drop for List<T, P>
[INFO] [stdout]  418 | | where
[INFO] [stdout]  419 | |     P: SharedPointerKind,
[INFO] [stdout]      | |_________________________^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stdout]      |
[INFO] [stdout]  417 | / impl<T, P> Drop for List<T, P>
[INFO] [stdout]  418 | | where
[INFO] [stdout]  419 | |     P: SharedPointerKind,
[INFO] [stdout]      | |_________________________^
[INFO] [stdout] note: `to_resolve` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `to_resolve` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `to_resolve` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stdout]      |
[INFO] [stdout]  417 | / impl<T, P> Drop for List<T, P>
[INFO] [stdout]  418 | | where
[INFO] [stdout]  419 | |     P: SharedPointerKind,
[INFO] [stdout]      | |_________________________^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]             346 |             match self.find_implicit(
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/implicits.rs:524:9
[INFO] [stdout]      |
[INFO] [stdout]  515 |         let binding_type = self.tc.instantiate_generics(&binding_type);
[INFO] [stdout]      |             ------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `binding_type` calls a custom destructor
[INFO] [stdout]      |             `binding_type` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  524 |         crate::unify_type::subsumes(&self.tc.subs, state, &demand.constraint, &iter.typ).is_ok()
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  525 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `binding_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `binding_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |  _________________^
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]     --> src/typecheck/generalize.rs:394:12
[INFO] [stdout]      |
[INFO] [stdout]  394 |         if let Some(new_type) = self.generalizer.generalize_type(typ) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^-------------------------------------
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]      |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]     --> src/typecheck/generalize.rs:397:9
[INFO] [stdout]      |
[INFO] [stdout]  397 |         } else {
[INFO] [stdout]      |         ^
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]      = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]      |
[INFO] [stdout]  394 ~         match self.generalizer.generalize_type(typ) { Some(new_type) => {
[INFO] [stdout]  395 |             *typ = new_type;
[INFO] [stdout]  396 |             debug!("End generalize {}", typ);
[INFO] [stdout]  397 ~         } _ => {
[INFO] [stdout]  398 |             debug!("End variable generalize");
[INFO] [stdout]  399 ~         }}
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]             347 | |               implicit_bindings,
[INFO] [stderr]             348 | |               &mut to_resolve,
[INFO] [stderr]             349 | |               &Demand {
[INFO] [stderr]                 | |  ______________-
[INFO] [stderr]             350 | | |                 reason: Default::default(),
[INFO] [stderr]             351 | | |                 constraint: id.typ.clone(),
[INFO] [stderr]             352 | | |             },
[INFO] [stderr]                 | | |             -
[INFO] [stderr]                 | | |             |
[INFO] [stderr]                 | | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 | |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             353 | |           ) {
[INFO] [stderr]                 | |           ^
[INFO] [stderr]                 | |           |
[INFO] [stderr]                 | |___________this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]             411 |         }
[INFO] [stderr]                 |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stderr]                 |
[INFO] [stderr]             417 | / impl<T, P> Drop for List<T, P>
[INFO] [stderr]             418 | | where
[INFO] [stderr]             419 | |     P: SharedPointerKind,
[INFO] [stderr]                 | |_________________________^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stderr]                 |
[INFO] [stderr]             417 | / impl<T, P> Drop for List<T, P>
[INFO] [stderr]             418 | | where
[INFO] [stderr]             419 | |     P: SharedPointerKind,
[INFO] [stderr]                 | |_________________________^
[INFO] [stderr]            note: `to_resolve` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `to_resolve` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `to_resolve` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stderr]                 |
[INFO] [stderr]             417 | / impl<T, P> Drop for List<T, P>
[INFO] [stderr]             418 | | where
[INFO] [stderr]             419 | |     P: SharedPointerKind,
[INFO] [stderr]                 | |_________________________^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/implicits.rs:524:9
[INFO] [stderr]                 |
[INFO] [stderr]             515 |         let binding_type = self.tc.instantiate_generics(&binding_type);
[INFO] [stderr]                 |             ------------
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `binding_type` calls a custom destructor
[INFO] [stderr]                 |             `binding_type` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]             524 |         crate::unify_type::subsumes(&self.tc.subs, state, &demand.constraint, &iter.typ).is_ok()
[INFO] [stderr]                 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |         |
[INFO] [stderr]                 |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             525 |     }
[INFO] [stderr]                 |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `binding_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `binding_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 11 warnings emitted
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            For more information about this error, try `rustc --explain E0409`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: `impl DoubleEndedIterator + Iterator<Item = &'a T>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/implicits.rs:170:10
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T>
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/implicits.rs:168:15
[INFO] [stdout]     |
[INFO] [stdout] 168 |         subs: &Substitution<RcType>,
[INFO] [stdout]     |               ^
[INFO] [stdout] 169 |         typ: &RcType,
[INFO] [stdout]     |              ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `gluon_check`
[INFO] [stderr]  --> src/implicits.rs
[INFO] [stderr]  ::: src/rename.rs
[INFO] [stderr]  ::: src/typecheck.rs
[INFO] [stderr]  ::: src/unify_type.rs
[INFO] [stderr]   = cause: error[E0409]: variable `new_expr` is bound inconsistently across alternatives separated by `|`
[INFO] [stderr]               --> src/rename.rs:334:39
[INFO] [stderr]                |
[INFO] [stderr]            331 | ...                   Expr::LetBindings(_, ref mut new_expr)
[INFO] [stderr]                |                                                    -------- first binding
[INFO] [stderr]            ...
[INFO] [stderr]            334 | ...                       body: new_expr,
[INFO] [stderr]                |                                 ^^^^^^^^ bound in different ways
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/typecheck.rs:384:9
[INFO] [stderr]                 |
[INFO] [stderr]             383 |         let typ = self.subs.hole();
[INFO] [stderr]                 |             ---
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `typ` calls a custom destructor
[INFO] [stderr]                 |             `typ` will be dropped later as of Edition 2024
[INFO] [stderr]             384 |         TypeGeneralizer::new(level, self, &typ, expr.span).generalize_variables(args, expr)
[INFO] [stderr]                 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |         |
[INFO] [stderr]                 |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             385 |     }
[INFO] [stderr]                 |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> src/typecheck/generalize.rs:23:1
[INFO] [stderr]                 |
[INFO] [stderr]              23 | impl<'a, 'b> Drop for TypeGeneralizer<'a, 'b, '_> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]                 = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/typecheck.rs:1075:49
[INFO] [stderr]                 |
[INFO] [stderr]            1074 |                         let rc_type = self.translate_arc_type(typ);
[INFO] [stderr]                 |                             -------
[INFO] [stderr]                 |                             |
[INFO] [stderr]                 |                             `rc_type` calls a custom destructor
[INFO] [stderr]                 |                             `rc_type` will be dropped later as of Edition 2024
[INFO] [stderr]            1075 |                         if let Some(new_type) = self.create_unifiable_signature(&rc_type) {
[INFO] [stderr]                 |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                                                 |
[INFO] [stderr]                 |                                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1078 |                     }
[INFO] [stderr]                 |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `rc_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `rc_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/typecheck.rs:1608:23
[INFO] [stderr]                 |
[INFO] [stderr]            1579 |                 let ctor_type = self.find_at(span, &id.name);
[INFO] [stderr]                 |                     ---------
[INFO] [stderr]                 |                     |
[INFO] [stderr]                 |                     `ctor_type` calls a custom destructor
[INFO] [stderr]                 |                     `ctor_type` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1585 |                 let ctor_type = if wobbly {
[INFO] [stderr]                 |                     ---------
[INFO] [stderr]                 |                     |
[INFO] [stderr]                 |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                     `#1` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1608 |                 match self.typecheck_pattern_rec(args, &ctor_type) {
[INFO] [stderr]                 |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                       |
[INFO] [stderr]                 |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1612 |             }
[INFO] [stderr]                 |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stderr]                 |
[INFO] [stderr]             417 | / impl<T, P> Drop for List<T, P>
[INFO] [stderr]             418 | | where
[INFO] [stderr]             419 | |     P: SharedPointerKind,
[INFO] [stderr]                 | |_________________________^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `ctor_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `ctor_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/typecheck.rs:3272:31
[INFO] [stderr]                 |
[INFO] [stderr]            3263 |                 let (arg, new) = match self.typ.as_function_with_type() {
[INFO] [stderr]                 |  ____________________---_________-
[INFO] [stderr]                 | |                    |
[INFO] [stderr]                 | |                    `arg` calls a custom destructor
[INFO] [stderr]                 | |                    `arg` will be dropped later as of Edition 2024
[INFO] [stderr]            3264 | |                   Some((arg_type, arg, ret)) => (Some((arg_type, arg.clone())), ret.clone()),
[INFO] [stderr]            3265 | |                   None => match get_alias_app(&self.tc.environment, &self.typ) {
[INFO] [stderr]                 | |                                 ----------------------------------------------
[INFO] [stderr]                 | |                                 |
[INFO] [stderr]                 | |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 | |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stderr]            3266 | |                       Some((alias, args)) => {
[INFO] [stderr]                 | |                             -----  ----
[INFO] [stderr]                 | |                             |      |
[INFO] [stderr]                 | |                             |      `args` calls a custom destructor
[INFO] [stderr]                 | |                             |      `args` will be dropped later as of Edition 2024
[INFO] [stderr]                 | |                             `alias` calls a custom destructor
[INFO] [stderr]                 | |                             `alias` will be dropped later as of Edition 2024
[INFO] [stderr]            ...    |
[INFO] [stderr]            3272 | |                           match alias.typ(&mut &self.tc.subs).apply_args(
[INFO] [stderr]                 | |                                 ^----------------------------
[INFO] [stderr]                 | |                                 |
[INFO] [stderr]                 | |                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stderr]                 | |  _______________________________up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                 | | |
[INFO] [stderr]            3273 | | |                             alias.params(),
[INFO] [stderr]            3274 | | |                             &args,
[INFO] [stderr]            3275 | | |                             &mut &self.tc.subs,
[INFO] [stderr]            3276 | | |                             &mut self.tc.named_variables,
[INFO] [stderr]            3277 | | |                         ) {
[INFO] [stderr]                 | | |                         ^
[INFO] [stderr]                 | | |                         |
[INFO] [stderr]                 | | |_________________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stderr]                 | |                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            3278 | |                               Some(typ) => (None, typ.clone()),
[INFO] [stderr]                 | |                                    ---
[INFO] [stderr]                 | |                                    |
[INFO] [stderr]                 | |                                    `typ` calls a custom destructor
[INFO] [stderr]                 | |                                    `typ` will be dropped later as of Edition 2024
[INFO] [stderr]            ...    |
[INFO] [stderr]            3281 | |                       }
[INFO] [stderr]                 | |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]            3282 | |                       None => return None,
[INFO] [stderr]            3283 | |                   },
[INFO] [stderr]            3284 | |               };
[INFO] [stderr]                 | |               -
[INFO] [stderr]                 | |               |
[INFO] [stderr]                 | |_______________this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                 `#1` will be dropped later as of Edition 2024
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#3` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#3` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#4` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#4` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `arg` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `arg` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `alias` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `alias` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `args` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `args` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:96:27
[INFO] [stderr]                 |
[INFO] [stderr]              87 |             Some(mut typ) => {
[INFO] [stderr]                 |                  -------
[INFO] [stderr]                 |                  |
[INFO] [stderr]                 |                  `typ` calls a custom destructor
[INFO] [stderr]                 |                  `typ` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]              96 |                     match resolve::remove_alias(&self.env, &mut subs, &typ)? {
[INFO] [stderr]                 |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                           |
[INFO] [stderr]                 |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]                 |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]             100 |                 }
[INFO] [stderr]                 |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `typ` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:413:33
[INFO] [stderr]                 |
[INFO] [stderr]             412 |             let l_args = collect![l_arg.clone(), l_ret.clone()];
[INFO] [stderr]                 |                 ------
[INFO] [stderr]                 |                 |
[INFO] [stderr]                 |                 `l_args` calls a custom destructor
[INFO] [stderr]                 |                 `l_args` will be dropped later as of Edition 2024
[INFO] [stderr]             413 |             unify_app(unifier, &subs.function_builtin(), &l_args, r, r_args)
[INFO] [stderr]                 |                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                                 |
[INFO] [stderr]                 |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             414 |                 .map_err(|_| UnifyError::TypeMismatch(expected.clone(), actual.clone()))
[INFO] [stderr]             415 |         }
[INFO] [stderr]                 |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `l_args` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:422:44
[INFO] [stderr]                 |
[INFO] [stderr]             421 |             let r_args = collect![r_arg.clone(), r_ret.clone()];
[INFO] [stderr]                 |                 ------
[INFO] [stderr]                 |                 |
[INFO] [stderr]                 |                 `r_args` calls a custom destructor
[INFO] [stderr]                 |                 `r_args` will be dropped later as of Edition 2024
[INFO] [stderr]             422 |             unify_app(unifier, l, l_args, &subs.function_builtin(), &r_args)
[INFO] [stderr]                 |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                                            |
[INFO] [stderr]                 |                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                                            up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             423 |                 .map_err(|_| UnifyError::TypeMismatch(expected.clone(), actual.clone()))
[INFO] [stderr]             424 |         }
[INFO] [stderr]                 |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `r_args` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/unify_type.rs:1001:23
[INFO] [stderr]                 |
[INFO] [stderr]             976 |     mut l: RcType,
[INFO] [stderr]                 |     -----
[INFO] [stderr]                 |     |
[INFO] [stderr]                 |     `l` calls a custom destructor
[INFO] [stderr]                 |     `l` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1001 |                 match resolve::remove_alias(unifier.state.env, &mut subs, &l) {
[INFO] [stderr]                 |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |                       |
[INFO] [stderr]                 |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            1016 |             }
[INFO] [stderr]                 |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `l` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `l` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/implicits.rs:346:15
[INFO] [stderr]                 |
[INFO] [stderr]             345 |             let mut to_resolve = Vec::new();
[INFO] [stderr]                 |                 --------------
[INFO] [stderr]                 |                 |
[INFO] [stderr]                 |                 `to_resolve` calls a custom destructor
[INFO] [stderr]                 |                 `to_resolve` will be dropped later as of Edition 2024
[INFO] [stderr]             346 |             match self.find_implicit(
[INFO] [stderr]                 |  _________________^
[INFO] [stderr]             347 | |               implicit_bindings,
[INFO] [stderr]             348 | |               &mut to_resolve,
[INFO] [stderr]             349 | |               &Demand {
[INFO] [stderr]                 | |  ______________-
[INFO] [stderr]             350 | | |                 reason: Default::default(),
[INFO] [stderr]             351 | | |                 constraint: id.typ.clone(),
[INFO] [stderr]             352 | | |             },
[INFO] [stderr]                 | | |             -
[INFO] [stderr]                 | | |             |
[INFO] [stderr]                 | | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stderr]                 | |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             353 | |           ) {
[INFO] [stderr]                 | |           ^
[INFO] [stderr]                 | |           |
[INFO] [stderr]                 | |___________this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]             411 |         }
[INFO] [stderr]                 |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stderr]                 |
[INFO] [stderr]             417 | / impl<T, P> Drop for List<T, P>
[INFO] [stderr]             418 | | where
[INFO] [stderr]             419 | |     P: SharedPointerKind,
[INFO] [stderr]                 | |_________________________^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#2` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stderr]                 |
[INFO] [stderr]             417 | / impl<T, P> Drop for List<T, P>
[INFO] [stderr]             418 | | where
[INFO] [stderr]             419 | |     P: SharedPointerKind,
[INFO] [stderr]                 | |_________________________^
[INFO] [stderr]            note: `to_resolve` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `to_resolve` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `to_resolve` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stderr]                 |
[INFO] [stderr]             417 | / impl<T, P> Drop for List<T, P>
[INFO] [stderr]             418 | | where
[INFO] [stderr]             419 | |     P: SharedPointerKind,
[INFO] [stderr]                 | |_________________________^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]                --> src/implicits.rs:524:9
[INFO] [stderr]                 |
[INFO] [stderr]             515 |         let binding_type = self.tc.instantiate_generics(&binding_type);
[INFO] [stderr]                 |             ------------
[INFO] [stderr]                 |             |
[INFO] [stderr]                 |             `binding_type` calls a custom destructor
[INFO] [stderr]                 |             `binding_type` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]             524 |         crate::unify_type::subsumes(&self.tc.subs, state, &demand.constraint, &iter.typ).is_ok()
[INFO] [stderr]                 |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 |         |
[INFO] [stderr]                 |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]                 |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]             525 |     }
[INFO] [stderr]                 |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]                 |
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `#1` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `binding_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            note: `binding_type` invokes this custom destructor
[INFO] [stderr]                --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stderr]                 |
[INFO] [stderr]            2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                 = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]                 = warning: this changes meaning in Rust 2024
[INFO] [stderr]                 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 1 previous error; 10 warnings emitted
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            For more information about this error, try `rustc --explain E0409`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/kindcheck.rs:239:35
[INFO] [stdout]     |
[INFO] [stdout] 239 |             Type::Generic(ref mut gen) => {
[INFO] [stdout]     |                                   ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout]     = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/kindcheck.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 gen.kind = self.find_at(span, &gen.id);
[INFO] [stdout]     |                 ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/kindcheck.rs:240:48
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 gen.kind = self.find_at(span, &gen.id);
[INFO] [stdout]     |                                                ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/kindcheck.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 gen.kind.clone()
[INFO] [stdout]     |                 ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typ.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let gen = Type::<_, RcType>::generic(Generic::new(Symbol::from("a"), Default::default()));
[INFO] [stdout]    |             ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typ.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         assert_eq!(gen.flags(), Flags::HAS_GENERICS);
[INFO] [stdout]    |                    ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typ.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 |             Type::function(vec![gen.clone()], gen.clone()).flags(),
[INFO] [stdout]    |                                 ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typ.rs:17:47
[INFO] [stdout]    |
[INFO] [stdout] 17 |             Type::function(vec![gen.clone()], gen.clone()).flags(),
[INFO] [stdout]    |                                               ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:1803:35
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                   ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:1803:43
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                           ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:2251:52
[INFO] [stdout]      |
[INFO] [stdout] 2251 |                         .extend(params.iter().map(|gen| (gen.id.clone(), type_cache.hole())));
[INFO] [stdout]      |                                                    ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:2251:58
[INFO] [stdout]      |
[INFO] [stdout] 2251 |                         .extend(params.iter().map(|gen| (gen.id.clone(), type_cache.hole())));
[INFO] [stdout]      |                                                          ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:3230:31
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref gen) => gen.clone(),
[INFO] [stdout]      |                               ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]     --> src/typecheck.rs:3230:39
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref gen) => gen.clone(),
[INFO] [stdout]      |                                       ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typecheck/generalize.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |         for (id, gen) in self.delayed_generalizations.drain(..) {
[INFO] [stdout]    |                  ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> src/typecheck/generalize.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |             self.tc.subs.replace(id, gen);
[INFO] [stdout]    |                                      ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:160:21
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 let gen = self.unbound_variables.entry(var.id).or_insert_with(|| {
[INFO] [stdout]     |                     ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:172:25
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     let gen: RcType = tc.generic(Generic::new(id.clone(), var.kind.clone()));
[INFO] [stdout]     |                         ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:173:52
[INFO] [stdout]     |
[INFO] [stdout] 173 |                     debug!("Gen {} to {}", var.id, gen);
[INFO] [stdout]     |                                                    ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                     gen
[INFO] [stdout]     |                     ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> src/typecheck/generalize.rs:178:22
[INFO] [stdout]     |
[INFO] [stdout] 178 |                 Some(gen.clone())
[INFO] [stdout]     |                      ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/rename.rs:281:21
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     ref mut id,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 282 |                     ref mut bound,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 283 |                     ref mut flat_map_id,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/rename.rs:280:26
[INFO] [stdout]     |
[INFO] [stdout] 280 |                   Expr::Do(Do {
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 281 | |                     ref mut id,
[INFO] [stdout] 282 | |                     ref mut bound,
[INFO] [stdout] 283 | |                     ref mut flat_map_id,
[INFO] [stdout] 284 | |                     ..
[INFO] [stdout] 285 | |                 }) => {
[INFO] [stdout]     | |_________________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]     = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: remove the unnecessary binding modifiers
[INFO] [stdout]     |
[INFO] [stdout] 281 ~                     id,
[INFO] [stdout] 282 ~                     bound,
[INFO] [stdout] 283 ~                     flat_map_id,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]    --> src/rename.rs:334:39
[INFO] [stdout]     |
[INFO] [stdout] 334 | ...                   body: ref mut new_expr,
[INFO] [stdout]     |                             ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/rename.rs:333:40
[INFO] [stdout]     |
[INFO] [stdout] 333 |   ...                   | Expr::Do(Do {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 334 | | ...                       body: ref mut new_expr,
[INFO] [stdout] 335 | | ...                       ..
[INFO] [stdout] 336 | | ...                   }) => new_expr,
[INFO] [stdout]     | |_______________________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 334 -                                 body: ref mut new_expr,
[INFO] [stdout] 334 +                                 body: new_expr,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:384:9
[INFO] [stdout]      |
[INFO] [stdout]  383 |         let typ = self.subs.hole();
[INFO] [stdout]      |             ---
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `typ` calls a custom destructor
[INFO] [stdout]      |             `typ` will be dropped later as of Edition 2024
[INFO] [stdout]  384 |         TypeGeneralizer::new(level, self, &typ, expr.span).generalize_variables(args, expr)
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  385 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> src/typecheck/generalize.rs:23:1
[INFO] [stdout]      |
[INFO] [stdout]   23 | impl<'a, 'b> Drop for TypeGeneralizer<'a, 'b, '_> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:1174:17
[INFO] [stdout]      |
[INFO] [stdout] 1174 |                 ref mut id,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1175 |                 ref mut typ,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1176 |                 ref mut bound,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1177 |                 ref mut body,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1178 |                 ref mut flat_map_id,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]     --> src/typecheck.rs:1173:22
[INFO] [stdout]      |
[INFO] [stdout] 1173 |               Expr::Do(Do {
[INFO] [stdout]      |  ______________________^
[INFO] [stdout] 1174 | |                 ref mut id,
[INFO] [stdout] 1175 | |                 ref mut typ,
[INFO] [stdout] 1176 | |                 ref mut bound,
[INFO] [stdout] 1177 | |                 ref mut body,
[INFO] [stdout] 1178 | |                 ref mut flat_map_id,
[INFO] [stdout] 1179 | |             }) => {
[INFO] [stdout]      | |_____________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout] help: remove the unnecessary binding modifiers
[INFO] [stdout]      |
[INFO] [stdout] 1174 ~                 id,
[INFO] [stdout] 1175 ~                 typ,
[INFO] [stdout] 1176 ~                 bound,
[INFO] [stdout] 1177 ~                 body,
[INFO] [stdout] 1178 ~                 flat_map_id,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:1075:49
[INFO] [stdout]      |
[INFO] [stdout] 1074 |                         let rc_type = self.translate_arc_type(typ);
[INFO] [stdout]      |                             -------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             `rc_type` calls a custom destructor
[INFO] [stdout]      |                             `rc_type` will be dropped later as of Edition 2024
[INFO] [stdout] 1075 |                         if let Some(new_type) = self.create_unifiable_signature(&rc_type) {
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                                 |
[INFO] [stdout]      |                                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1078 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rc_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rc_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:1608:23
[INFO] [stdout]      |
[INFO] [stdout] 1579 |                 let ctor_type = self.find_at(span, &id.name);
[INFO] [stdout]      |                     ---------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `ctor_type` calls a custom destructor
[INFO] [stdout]      |                     `ctor_type` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1585 |                 let ctor_type = if wobbly {
[INFO] [stdout]      |                     ---------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1608 |                 match self.typecheck_pattern_rec(args, &ctor_type) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1612 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stdout]      |
[INFO] [stdout]  417 | / impl<T, P> Drop for List<T, P>
[INFO] [stdout]  418 | | where
[INFO] [stdout]  419 | |     P: SharedPointerKind,
[INFO] [stdout]      | |_________________________^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ctor_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `ctor_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/typecheck.rs:3272:31
[INFO] [stdout]      |
[INFO] [stdout] 3263 |                 let (arg, new) = match self.typ.as_function_with_type() {
[INFO] [stdout]      |  ____________________---_________-
[INFO] [stdout]      | |                    |
[INFO] [stdout]      | |                    `arg` calls a custom destructor
[INFO] [stdout]      | |                    `arg` will be dropped later as of Edition 2024
[INFO] [stdout] 3264 | |                   Some((arg_type, arg, ret)) => (Some((arg_type, arg.clone())), ret.clone()),
[INFO] [stdout] 3265 | |                   None => match get_alias_app(&self.tc.environment, &self.typ) {
[INFO] [stdout]      | |                                 ----------------------------------------------
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |                                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 3266 | |                       Some((alias, args)) => {
[INFO] [stdout]      | |                             -----  ----
[INFO] [stdout]      | |                             |      |
[INFO] [stdout]      | |                             |      `args` calls a custom destructor
[INFO] [stdout]      | |                             |      `args` will be dropped later as of Edition 2024
[INFO] [stdout]      | |                             `alias` calls a custom destructor
[INFO] [stdout]      | |                             `alias` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout] 3272 | |                           match alias.typ(&mut &self.tc.subs).apply_args(
[INFO] [stdout]      | |                                 ^----------------------------
[INFO] [stdout]      | |                                 |
[INFO] [stdout]      | |                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      | |  _______________________________up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      | | |
[INFO] [stdout] 3273 | | |                             alias.params(),
[INFO] [stdout] 3274 | | |                             &args,
[INFO] [stdout] 3275 | | |                             &mut &self.tc.subs,
[INFO] [stdout] 3276 | | |                             &mut self.tc.named_variables,
[INFO] [stdout] 3277 | | |                         ) {
[INFO] [stdout]      | | |                         ^
[INFO] [stdout]      | | |                         |
[INFO] [stdout]      | | |_________________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      | |                           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 3278 | |                               Some(typ) => (None, typ.clone()),
[INFO] [stdout]      | |                                    ---
[INFO] [stdout]      | |                                    |
[INFO] [stdout]      | |                                    `typ` calls a custom destructor
[INFO] [stdout]      | |                                    `typ` will be dropped later as of Edition 2024
[INFO] [stdout] ...    |
[INFO] [stdout] 3281 | |                       }
[INFO] [stdout]      | |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 3282 | |                       None => return None,
[INFO] [stdout] 3283 | |                   },
[INFO] [stdout] 3284 | |               };
[INFO] [stdout]      | |               -
[INFO] [stdout]      | |               |
[INFO] [stdout]      | |_______________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `arg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `alias` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `alias` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `args` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `args` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:96:27
[INFO] [stdout]      |
[INFO] [stdout]   87 |             Some(mut typ) => {
[INFO] [stdout]      |                  -------
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  `typ` calls a custom destructor
[INFO] [stdout]      |                  `typ` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   96 |                     match resolve::remove_alias(&self.env, &mut subs, &typ)? {
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  100 |                 }
[INFO] [stdout]      |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `typ` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:413:33
[INFO] [stdout]      |
[INFO] [stdout]  412 |             let l_args = collect![l_arg.clone(), l_ret.clone()];
[INFO] [stdout]      |                 ------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `l_args` calls a custom destructor
[INFO] [stdout]      |                 `l_args` will be dropped later as of Edition 2024
[INFO] [stdout]  413 |             unify_app(unifier, &subs.function_builtin(), &l_args, r, r_args)
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  414 |                 .map_err(|_| UnifyError::TypeMismatch(expected.clone(), actual.clone()))
[INFO] [stdout]  415 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `l_args` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:422:44
[INFO] [stdout]      |
[INFO] [stdout]  421 |             let r_args = collect![r_arg.clone(), r_ret.clone()];
[INFO] [stdout]      |                 ------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `r_args` calls a custom destructor
[INFO] [stdout]      |                 `r_args` will be dropped later as of Edition 2024
[INFO] [stdout]  422 |             unify_app(unifier, l, l_args, &subs.function_builtin(), &r_args)
[INFO] [stdout]      |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                            |
[INFO] [stdout]      |                                            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                            up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  423 |                 .map_err(|_| UnifyError::TypeMismatch(expected.clone(), actual.clone()))
[INFO] [stdout]  424 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `r_args` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/unify_type.rs:1001:23
[INFO] [stdout]      |
[INFO] [stdout]  976 |     mut l: RcType,
[INFO] [stdout]      |     -----
[INFO] [stdout]      |     |
[INFO] [stdout]      |     `l` calls a custom destructor
[INFO] [stdout]      |     `l` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1001 |                 match resolve::remove_alias(unifier.state.env, &mut subs, &l) {
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 1016 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `l` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `l` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/implicits.rs:346:15
[INFO] [stdout]      |
[INFO] [stdout]  345 |             let mut to_resolve = Vec::new();
[INFO] [stdout]      |                 --------------
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 `to_resolve` calls a custom destructor
[INFO] [stdout]      |                 `to_resolve` will be dropped later as of Edition 2024
[INFO] [stdout]  346 |             match self.find_implicit(
[INFO] [stdout]      |  _________________^
[INFO] [stdout]  347 | |               implicit_bindings,
[INFO] [stdout]  348 | |               &mut to_resolve,
[INFO] [stdout]  349 | |               &Demand {
[INFO] [stdout]      | |  ______________-
[INFO] [stdout]  350 | | |                 reason: Default::default(),
[INFO] [stdout]  351 | | |                 constraint: id.typ.clone(),
[INFO] [stdout]  352 | | |             },
[INFO] [stdout]      | | |             -
[INFO] [stdout]      | | |             |
[INFO] [stdout]      | | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      | |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  353 | |           ) {
[INFO] [stdout]      | |           ^
[INFO] [stdout]      | |           |
[INFO] [stdout]      | |___________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  411 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stdout]      |
[INFO] [stdout]  417 | / impl<T, P> Drop for List<T, P>
[INFO] [stdout]  418 | | where
[INFO] [stdout]  419 | |     P: SharedPointerKind,
[INFO] [stdout]      | |_________________________^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stdout]      |
[INFO] [stdout]  417 | / impl<T, P> Drop for List<T, P>
[INFO] [stdout]  418 | | where
[INFO] [stdout]  419 | |     P: SharedPointerKind,
[INFO] [stdout]      | |_________________________^
[INFO] [stdout] note: `to_resolve` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `to_resolve` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `to_resolve` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rpds-0.10.0/src/list/mod.rs:417:1
[INFO] [stdout]      |
[INFO] [stdout]  417 | / impl<T, P> Drop for List<T, P>
[INFO] [stdout]  418 | | where
[INFO] [stdout]  419 | |     P: SharedPointerKind,
[INFO] [stdout]      | |_________________________^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/implicits.rs:524:9
[INFO] [stdout]      |
[INFO] [stdout]  515 |         let binding_type = self.tc.instantiate_generics(&binding_type);
[INFO] [stdout]      |             ------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `binding_type` calls a custom destructor
[INFO] [stdout]      |             `binding_type` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  524 |         crate::unify_type::subsumes(&self.tc.subs, state, &demand.constraint, &iter.typ).is_ok()
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |         up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  525 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `binding_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `binding_type` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]     --> src/typecheck/generalize.rs:394:12
[INFO] [stdout]      |
[INFO] [stdout]  394 |         if let Some(new_type) = self.generalizer.generalize_type(typ) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^-------------------------------------
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]      |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]     --> src/typecheck/generalize.rs:397:9
[INFO] [stdout]      |
[INFO] [stdout]  397 |         } else {
[INFO] [stdout]      |         ^
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]      = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]      |
[INFO] [stdout]  394 ~         match self.generalizer.generalize_type(typ) { Some(new_type) => {
[INFO] [stdout]  395 |             *typ = new_type;
[INFO] [stdout]  396 |             debug!("End generalize {}", typ);
[INFO] [stdout]  397 ~         } _ => {
[INFO] [stdout]  398 |             debug!("End variable generalize");
[INFO] [stdout]  399 ~         }}
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl DoubleEndedIterator + Iterator<Item = &'a T>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/implicits.rs:170:10
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T>
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/implicits.rs:168:15
[INFO] [stdout]     |
[INFO] [stdout] 168 |         subs: &Substitution<RcType>,
[INFO] [stdout]     |               ^
[INFO] [stdout] 169 |         typ: &RcType,
[INFO] [stdout]     |              ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/row_polymorphism.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed tests/support/mod.rs (17 fixes)
[INFO] [stderr]    Migrating tests/error_recovery.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/stack_overflow.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/recursive.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/gadt.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/implicits.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/forall.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/pass.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed tests/pass.rs (3 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/effect.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/type_projection.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/metadata.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/fail.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> tests/support/mod.rs:86:43
[INFO] [stdout]      |
[INFO] [stdout]   84 |     let mut symbols = symbols.borrow_mut();
[INFO] [stdout]      |         -----------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `symbols` calls a custom destructor
[INFO] [stdout]      |         `symbols` will be dropped later as of Edition 2024
[INFO] [stdout]   85 |     let mut module = SymbolModule::new("test".into(), &mut symbols);
[INFO] [stdout]   86 |     parse_partial_root_expr(&mut module, &TypeCache::new(), s)
[INFO] [stdout]      |                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                           |
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]   87 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.2/src/lib.rs:2167:1
[INFO] [stdout]      |
[INFO] [stdout] 2167 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `symbols` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:2050:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s
[INFO] [stderr] crater-edition-check: gluon_check v0.18.2 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking gluon_check v0.18.2 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]    --> src/kindcheck.rs:239:35
[INFO] [stdout]     |
[INFO] [stdout] 239 |             Type::Generic(ref mut gen) => {
[INFO] [stdout]     |                                   ^^^ expected identifier, found reserved keyword
[INFO] [stdout]     |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]     |
[INFO] [stdout] 239 |             Type::Generic(ref mut r#gen) => {
[INFO] [stdout]     |                                   ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]    --> src/kindcheck.rs:239:35
[INFO] [stdout]     |
[INFO] [stdout] 239 |             Type::Generic(ref mut gen) => {
[INFO] [stdout]     |                                   ^^^ expected identifier, found reserved keyword
[INFO] [stdout]     |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]     |
[INFO] [stdout] 239 |             Type::Generic(ref mut r#gen) => {
[INFO] [stdout]     |                                   ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> src/kindcheck.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 gen.kind = self.find_at(span, &gen.id);
[INFO] [stdout]     |                 ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> src/kindcheck.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 gen.kind = self.find_at(span, &gen.id);
[INFO] [stdout]     |                 ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]   --> src/typ.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let gen = Type::<_, RcType>::generic(Generic::new(Symbol::from("a"), Default::default()));
[INFO] [stdout]    |             ^^^ expected identifier, found reserved keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let r#gen = Type::<_, RcType>::generic(Generic::new(Symbol::from("a"), Default::default()));
[INFO] [stdout]    |             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]   --> src/typ.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let gen = Type::<_, RcType>::generic(Generic::new(Symbol::from("a"), Default::default()));
[INFO] [stdout]    |             ^^^ expected identifier, found reserved keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let r#gen = Type::<_, RcType>::generic(Generic::new(Symbol::from("a"), Default::default()));
[INFO] [stdout]    |             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:1803:35
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                   ^^^ expected identifier, found reserved keyword
[INFO] [stdout]      |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref r#gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                   ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:1803:35
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                   ^^^ expected identifier, found reserved keyword
[INFO] [stdout]      |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref r#gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                   ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:1803:43
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                           ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:1803:43
[INFO] [stdout]      |
[INFO] [stdout] 1803 |                 Type::Generic(ref gen) if gen.id == alias.name => self.ident(KindedIdent {
[INFO] [stdout]      |                                           ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:2251:52
[INFO] [stdout]      |
[INFO] [stdout] 2251 |                         .extend(params.iter().map(|gen| (gen.id.clone(), type_cache.hole())));
[INFO] [stdout]      |                                                    ^^^ expected identifier, found reserved keyword
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:2251:52
[INFO] [stdout]      |
[INFO] [stdout] 2251 |                         .extend(params.iter().map(|gen| (gen.id.clone(), type_cache.hole())));
[INFO] [stdout]      |                                                    ^^^ expected identifier, found reserved keyword
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:3230:31
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref gen) => gen.clone(),
[INFO] [stdout]      |                               ^^^ expected identifier, found reserved keyword
[INFO] [stdout]      |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref r#gen) => gen.clone(),
[INFO] [stdout]      |                               ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:3230:31
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref gen) => gen.clone(),
[INFO] [stdout]      |                               ^^^ expected identifier, found reserved keyword
[INFO] [stdout]      |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref r#gen) => gen.clone(),
[INFO] [stdout]      |                               ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:3230:39
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref gen) => gen.clone(),
[INFO] [stdout]      |                                    -- ^^^ expected expression
[INFO] [stdout]      |                                    |
[INFO] [stdout]      |                                    while parsing the `match` arm starting here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]     --> src/typecheck.rs:3230:39
[INFO] [stdout]      |
[INFO] [stdout] 3230 |             Type::Generic(ref gen) => gen.clone(),
[INFO] [stdout]      |                                    -- ^^^ expected expression
[INFO] [stdout]      |                                    |
[INFO] [stdout]      |                                    while parsing the `match` arm starting here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]   --> src/typecheck/generalize.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |         for (id, gen) in self.delayed_generalizations.drain(..) {
[INFO] [stdout]    |                  ^^^ expected identifier, found reserved keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 25 |         for (id, r#gen) in self.delayed_generalizations.drain(..) {
[INFO] [stdout]    |                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]   --> src/typecheck/generalize.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |             self.tc.subs.replace(id, gen);
[INFO] [stdout]    |                                      ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:160:21
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 let gen = self.unbound_variables.entry(var.id).or_insert_with(|| {
[INFO] [stdout]     |                     ^^^ expected identifier, found reserved keyword
[INFO] [stdout]     |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 let r#gen = self.unbound_variables.entry(var.id).or_insert_with(|| {
[INFO] [stdout]     |                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:172:25
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     let gen: RcType = tc.generic(Generic::new(id.clone(), var.kind.clone()));
[INFO] [stdout]     |                         ^^^ expected identifier, found reserved keyword
[INFO] [stdout]     |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     let r#gen: RcType = tc.generic(Generic::new(id.clone(), var.kind.clone()));
[INFO] [stdout]     |                         ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                     gen
[INFO] [stdout]     |                     ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]   --> src/typecheck/generalize.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |         for (id, gen) in self.delayed_generalizations.drain(..) {
[INFO] [stdout]    |                  ^^^ expected identifier, found reserved keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 25 |         for (id, r#gen) in self.delayed_generalizations.drain(..) {
[INFO] [stdout]    |                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]   --> src/typecheck/generalize.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |             self.tc.subs.replace(id, gen);
[INFO] [stdout]    |                                      ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:178:22
[INFO] [stdout]     |
[INFO] [stdout] 178 |                 Some(gen.clone())
[INFO] [stdout]     |                      ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:160:21
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 let gen = self.unbound_variables.entry(var.id).or_insert_with(|| {
[INFO] [stdout]     |                     ^^^ expected identifier, found reserved keyword
[INFO] [stdout]     |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 let r#gen = self.unbound_variables.entry(var.id).or_insert_with(|| {
[INFO] [stdout]     |                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:172:25
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     let gen: RcType = tc.generic(Generic::new(id.clone(), var.kind.clone()));
[INFO] [stdout]     |                         ^^^ expected identifier, found reserved keyword
[INFO] [stdout]     |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]     |
[INFO] [stdout] 172 |                     let r#gen: RcType = tc.generic(Generic::new(id.clone(), var.kind.clone()));
[INFO] [stdout]     |                         ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                     gen
[INFO] [stdout]     |                     ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:178:22
[INFO] [stdout]     |
[INFO] [stdout] 178 |                 Some(gen.clone())
[INFO] [stdout]     |                      ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]   --> src/typ.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         assert_eq!(gen.flags(), Flags::HAS_GENERICS);
[INFO] [stdout]    |                    ^^^ expected expression
[INFO] [stdout]    |
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/macros/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout]    = note: while parsing argument for this `expr` macro fragment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]   --> src/typ.rs:17:47
[INFO] [stdout]    |
[INFO] [stdout] 17 |             Type::function(vec![gen.clone()], gen.clone()).flags(),
[INFO] [stdout]    |                                               ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:173:52
[INFO] [stdout]     |
[INFO] [stdout] 173 |                     debug!("Gen {} to {}", var.id, gen);
[INFO] [stdout]     |                                                    ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> src/typecheck/generalize.rs:173:52
[INFO] [stdout]     |
[INFO] [stdout] 173 |                     debug!("Gen {} to {}", var.id, gen);
[INFO] [stdout]     |                                                    ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_derive`
[INFO] [stdout]  --> src/metadata.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(feature = "serde_derive")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `serde_derive` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TypeExt` and `TypePtr`
[INFO] [stdout]  --> src/typ.rs:1:56
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::base::types::{ArcType as RcType, Flags, TypeExt, TypePtr};
[INFO] [stdout]   |                                                        ^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KindedIdent`
[INFO] [stdout]   --> src/typecheck.rs:12:66
[INFO] [stdout]    |
[INFO] [stdout] 12 |         self, Argument, AstType, DisplayEnv, Do, Expr, IdentEnv, KindedIdent, Literal, MutVisitor,
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde_derive`
[INFO] [stdout]  --> src/metadata.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(feature = "serde_derive")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = help: consider adding `serde_derive` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypeExt`
[INFO] [stdout]  --> src/typ.rs:1:56
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use crate::base::types::{ArcType as RcType, Flags, TypeExt, TypePtr};
[INFO] [stdout]   |                                                        ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KindedIdent`
[INFO] [stdout]   --> src/typecheck.rs:12:66
[INFO] [stdout]    |
[INFO] [stdout] 12 |         self, Argument, AstType, DisplayEnv, Do, Expr, IdentEnv, KindedIdent, Literal, MutVisitor,
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/rename.rs:281:21
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     ref mut id,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 282 |                     ref mut bound,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 283 |                     ref mut flat_map_id,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/rename.rs:280:26
[INFO] [stdout]     |
[INFO] [stdout] 280 |                   Expr::Do(Do {
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 281 | |                     ref mut id,
[INFO] [stdout] 282 | |                     ref mut bound,
[INFO] [stdout] 283 | |                     ref mut flat_map_id,
[INFO] [stdout] 284 | |                     ..
[INFO] [stdout] 285 | |                 }) => {
[INFO] [stdout]     | |_________________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout] help: remove the unnecessary binding modifiers
[INFO] [stdout]     |
[INFO] [stdout] 281 ~                     id,
[INFO] [stdout] 282 ~                     bound,
[INFO] [stdout] 283 ~                     flat_map_id,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/rename.rs:334:39
[INFO] [stdout]     |
[INFO] [stdout] 334 | ...                   body: ref mut new_expr,
[INFO] [stdout]     |                             ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/rename.rs:333:40
[INFO] [stdout]     |
[INFO] [stdout] 333 |   ...                   | Expr::Do(Do {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 334 | | ...                       body: ref mut new_expr,
[INFO] [stdout] 335 | | ...                       ..
[INFO] [stdout] 336 | | ...                   }) => new_expr,
[INFO] [stdout]     | |_______________________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 334 -                                 body: ref mut new_expr,
[INFO] [stdout] 334 +                                 body: new_expr,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/rename.rs:281:21
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     ref mut id,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 282 |                     ref mut bound,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 283 |                     ref mut flat_map_id,
[INFO] [stdout]     |                     ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/rename.rs:280:26
[INFO] [stdout]     |
[INFO] [stdout] 280 |                   Expr::Do(Do {
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 281 | |                     ref mut id,
[INFO] [stdout] 282 | |                     ref mut bound,
[INFO] [stdout] 283 | |                     ref mut flat_map_id,
[INFO] [stdout] 284 | |                     ..
[INFO] [stdout] 285 | |                 }) => {
[INFO] [stdout]     | |_________________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout] help: remove the unnecessary binding modifiers
[INFO] [stdout]     |
[INFO] [stdout] 281 ~                     id,
[INFO] [stdout] 282 ~                     bound,
[INFO] [stdout] 283 ~                     flat_map_id,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]    --> src/rename.rs:334:39
[INFO] [stdout]     |
[INFO] [stdout] 334 | ...                   body: ref mut new_expr,
[INFO] [stdout]     |                             ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> src/rename.rs:333:40
[INFO] [stdout]     |
[INFO] [stdout] 333 |   ...                   | Expr::Do(Do {
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 334 | | ...                       body: ref mut new_expr,
[INFO] [stdout] 335 | | ...                       ..
[INFO] [stdout] 336 | | ...                   }) => new_expr,
[INFO] [stdout]     | |_______________________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]     |
[INFO] [stdout] 334 -                                 body: ref mut new_expr,
[INFO] [stdout] 334 +                                 body: new_expr,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/typecheck.rs:1174:17
[INFO] [stdout]      |
[INFO] [stdout] 1174 |                 ref mut id,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1175 |                 ref mut typ,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1176 |                 ref mut bound,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1177 |                 ref mut body,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1178 |                 ref mut flat_map_id,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]     --> src/typecheck.rs:1173:22
[INFO] [stdout]      |
[INFO] [stdout] 1173 |               Expr::Do(Do {
[INFO] [stdout]      |  ______________________^
[INFO] [stdout] 1174 | |                 ref mut id,
[INFO] [stdout] 1175 | |                 ref mut typ,
[INFO] [stdout] 1176 | |                 ref mut bound,
[INFO] [stdout] 1177 | |                 ref mut body,
[INFO] [stdout] 1178 | |                 ref mut flat_map_id,
[INFO] [stdout] 1179 | |             }) => {
[INFO] [stdout]      | |_____________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout] help: remove the unnecessary binding modifiers
[INFO] [stdout]      |
[INFO] [stdout] 1174 ~                 id,
[INFO] [stdout] 1175 ~                 typ,
[INFO] [stdout] 1176 ~                 bound,
[INFO] [stdout] 1177 ~                 body,
[INFO] [stdout] 1178 ~                 flat_map_id,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> src/typecheck.rs:1174:17
[INFO] [stdout]      |
[INFO] [stdout] 1174 |                 ref mut id,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1175 |                 ref mut typ,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1176 |                 ref mut bound,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1177 |                 ref mut body,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout] 1178 |                 ref mut flat_map_id,
[INFO] [stdout]      |                 ^^^^^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]     --> src/typecheck.rs:1173:22
[INFO] [stdout]      |
[INFO] [stdout] 1173 |               Expr::Do(Do {
[INFO] [stdout]      |  ______________________^
[INFO] [stdout] 1174 | |                 ref mut id,
[INFO] [stdout] 1175 | |                 ref mut typ,
[INFO] [stdout] 1176 | |                 ref mut bound,
[INFO] [stdout] 1177 | |                 ref mut body,
[INFO] [stdout] 1178 | |                 ref mut flat_map_id,
[INFO] [stdout] 1179 | |             }) => {
[INFO] [stdout]      | |_____________^ this non-reference pattern matches on a reference type `&mut _`
[INFO] [stdout] help: remove the unnecessary binding modifiers
[INFO] [stdout]      |
[INFO] [stdout] 1174 ~                 id,
[INFO] [stdout] 1175 ~                 typ,
[INFO] [stdout] 1176 ~                 bound,
[INFO] [stdout] 1177 ~                 body,
[INFO] [stdout] 1178 ~                 flat_map_id,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self.tc.subs` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/implicits.rs:536:33
[INFO] [stdout]     |
[INFO] [stdout] 534 |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     |                             ------------- immutable borrow occurs here
[INFO] [stdout] 535 |             .rev();
[INFO] [stdout] 536 |         let mut snapshot = Some(self.tc.subs.snapshot());
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout] 537 |         let found_candidate = candidates.by_ref().find(|x| {
[INFO] [stdout]     |                               ---------- immutable borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/implicits.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |           let mut candidates = implicit_bindings
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 534 | |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0500]: closure requires unique access to `*self` but it is already borrowed
[INFO] [stdout]    --> src/implicits.rs:537:56
[INFO] [stdout]     |
[INFO] [stdout] 534 |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     |                             ------------- borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 537 |         let found_candidate = candidates.by_ref().find(|x| {
[INFO] [stdout]     |                                                        ^^^ closure construction occurs here
[INFO] [stdout] 538 |             let (path, typ) = &*x;
[INFO] [stdout] 539 |             if self.try_resolve_implicit(path, to_resolve, demand, typ) {
[INFO] [stdout]     |                ---- second borrow occurs due to use of `*self` in closure
[INFO] [stdout] ...
[INFO] [stdout] 625 |     }
[INFO] [stdout]     |     - first borrow might be used here, when `candidates` is dropped and runs the destructor for type `Rev<impl DoubleEndedIterator + Iterator<Item = &(Rc<[TypedIdent]>, base::types::ArcType)>>`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/implicits.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |           let mut candidates = implicit_bindings
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 534 | |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self.tc.subs` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/implicits.rs:549:17
[INFO] [stdout]     |
[INFO] [stdout] 534 |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     |                             ------------- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 549 |                 self.tc.subs.commit(snapshot.unwrap());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 590 |                 let mut additional_candidates: Vec<_> = candidates
[INFO] [stdout]     |                                                         ---------- immutable borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/implicits.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |           let mut candidates = implicit_bindings
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 534 | |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0500]: closure requires unique access to `*self` but it is already borrowed
[INFO] [stdout]    --> src/implicits.rs:591:29
[INFO] [stdout]     |
[INFO] [stdout] 534 |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     |                             ------------- borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 591 |                     .filter(|x| {
[INFO] [stdout]     |                      ------ ^^^ closure construction occurs here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      first borrow later used by call
[INFO] [stdout] ...
[INFO] [stdout] 594 |                         let b = self.try_resolve_implicit(path, &mut Vec::new(), demand, typ);
[INFO] [stdout]     |                                 ---- second borrow occurs due to use of `*self` in closure
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/implicits.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |           let mut candidates = implicit_bindings
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 534 | |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self.tc.subs` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/implicits.rs:536:33
[INFO] [stdout]     |
[INFO] [stdout] 534 |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     |                             ------------- immutable borrow occurs here
[INFO] [stdout] 535 |             .rev();
[INFO] [stdout] 536 |         let mut snapshot = Some(self.tc.subs.snapshot());
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout] 537 |         let found_candidate = candidates.by_ref().find(|x| {
[INFO] [stdout]     |                               ---------- immutable borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/implicits.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |           let mut candidates = implicit_bindings
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 534 | |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0500]: closure requires unique access to `*self` but it is already borrowed
[INFO] [stdout]    --> src/implicits.rs:537:56
[INFO] [stdout]     |
[INFO] [stdout] 534 |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     |                             ------------- borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 537 |         let found_candidate = candidates.by_ref().find(|x| {
[INFO] [stdout]     |                                                        ^^^ closure construction occurs here
[INFO] [stdout] 538 |             let (path, typ) = &*x;
[INFO] [stdout] 539 |             if self.try_resolve_implicit(path, to_resolve, demand, typ) {
[INFO] [stdout]     |                ---- second borrow occurs due to use of `*self` in closure
[INFO] [stdout] ...
[INFO] [stdout] 625 |     }
[INFO] [stdout]     |     - first borrow might be used here, when `candidates` is dropped and runs the destructor for type `Rev<impl DoubleEndedIterator + Iterator<Item = &(Rc<[TypedIdent]>, ArcType)>>`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/implicits.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |           let mut candidates = implicit_bindings
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 534 | |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self.tc.subs` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/implicits.rs:549:17
[INFO] [stdout]     |
[INFO] [stdout] 534 |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     |                             ------------- immutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 549 |                 self.tc.subs.commit(snapshot.unwrap());
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 590 |                 let mut additional_candidates: Vec<_> = candidates
[INFO] [stdout]     |                                                         ---------- immutable borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/implicits.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |           let mut candidates = implicit_bindings
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 534 | |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0500]: closure requires unique access to `*self` but it is already borrowed
[INFO] [stdout]    --> src/implicits.rs:591:29
[INFO] [stdout]     |
[INFO] [stdout] 534 |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     |                             ------------- borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 591 |                     .filter(|x| {
[INFO] [stdout]     |                      ------ ^^^ closure construction occurs here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      first borrow later used by call
[INFO] [stdout] ...
[INFO] [stdout] 594 |                         let b = self.try_resolve_implicit(path, &mut Vec::new(), demand, typ);
[INFO] [stdout]     |                                 ---- second borrow occurs due to use of `*self` in closure
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/implicits.rs:533:30
[INFO] [stdout]     |
[INFO] [stdout] 533 |           let mut candidates = implicit_bindings
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 534 | |             .get_candidates(&self.tc.subs, &demand.constraint)
[INFO] [stdout]     | |______________________________________________________________^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ) -> impl DoubleEndedIterator<Item = &'a T> + use<'a, T>
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0500, E0502.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0500`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0500, E0502.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0500`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gluon_check` (lib) due to 22 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `gluon_check` (lib test) due to 24 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "ac81a1d7109b9310689be399bd856db68dcd21530360d43ca3b19649fec1cdd9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac81a1d7109b9310689be399bd856db68dcd21530360d43ca3b19649fec1cdd9", kill_on_drop: false }`
[INFO] [stdout] ac81a1d7109b9310689be399bd856db68dcd21530360d43ca3b19649fec1cdd9
